package com.hckjsec.law.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.hckjsec.common.constant.Constants;
import com.hckjsec.common.core.controller.BaseController;
import com.hckjsec.common.core.domain.AjaxResult;
import com.hckjsec.common.core.domain.entity.SysDictData;
import com.hckjsec.common.core.redis.RedisCache;
import com.hckjsec.common.general.MapFileView;
import com.hckjsec.common.general.MapStringView;
import com.hckjsec.common.holiday.HolidayUtil;
import com.hckjsec.common.utils.*;
import com.hckjsec.common.utils.bean.BeanUtils;
import com.hckjsec.common.utils.http.HttpUtils;
import com.hckjsec.law.WebSocket.WebLawSocketServer;
import com.hckjsec.law.domain.*;
import com.hckjsec.law.domain.VisitView.*;
import com.hckjsec.law.service.*;
import com.hckjsec.system.service.ISysDictTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.*;

/**
 * 此类处理微信公法小程序端请求的接口数据
 */
@RestController
@RequestMapping("/wechatlaw/api")
public class WxLawPublicApiController extends BaseController {
    public static Map<String,String> typeHt = new Hashtable<String,String>();
    static {
        if(typeHt.size()==0){
            typeHt.put("01","律师咨询");
            typeHt.put("02","公证咨询");
            typeHt.put("03","鉴定咨询");
            typeHt.put("04","基层法律服务");
            typeHt.put("05","法援咨询");
        }
    }
    @Autowired
    private RedisCache redisCache;

    @Autowired
    private IWebLawConfigService webLawConfigService;

    @Autowired
    private IWebLawCompanyService webLawCompanyService;

    @Autowired
    private ISysDictTypeService dictTypeService;

    @Autowired
    private IWebLawPersonnelService webLawPersonnelService;

    @Autowired
    private ILawCaseTypeService lawCaseTypeService;

    @Autowired
    private ILawWechatUserService lawWechatUserService;

    @Autowired
    private IWebLawConsullingService webLawConsullingService;

    @Autowired
    private IWebLawConsullingDetailService webLawConsullingDetailService;

    @Autowired
    private IWebLawMechanismService webLawMechanismService;

    @Autowired
    private IWebLawMechanismDetailService webLawMechanismDetailService;

    @Autowired
    private IWebLawPropagandaService webLawPropagandaService;

    @Autowired
    private IWebLawReserveService webLawReserveService;

    @Autowired
    private IWebLawFlowService webLawFlowService;

    @Autowired
    private IWebLawEvaluateService webLawEvaluateService;

    @Autowired
    private IWebLawCatalogueService webLawCatalogueService;

    @Autowired
    private IWebLawImplementService webLawImplementService;

    @Autowired
    private IWebLawImplementDetailService webLawImplementDetailService;

    @Autowired
    private IWebLawConsultationService webLawConsultationService;

    @Autowired
    private HolidayUtil holidayUtil;

    /**
     * 公法小程序端初始化
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/global")
    public AjaxResult global(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        GlobalLawView globalLawView = new GlobalLawView();
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        List<RotationChartView> imgList = new ArrayList<>();
        String rotationChart = StringUtils.isHcNull(finalWebLawConfig.getRotationChart(),"");
        if (!"".equals(rotationChart)){
            String[] rotationChartArr = rotationChart.split(";");
            for (int i = 0; i < rotationChartArr.length; i++) {
                String url = rotationChartArr[i];
                RotationChartView rotationChartView = new RotationChartView();
                rotationChartView.setName(url);
                rotationChartView.setUrl(url);
                imgList.add(rotationChartView);
            }
        }
        finalWebLawConfig.setImgList(imgList);
        globalLawView.setWebLawConfig(finalWebLawConfig);
        return AjaxResult.success(globalLawView);
    }

    /**
     * 公法小程序端获取机构列表
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getCompanyList")
    public AjaxResult getCompanyList(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        String companyType = StringUtils.isHcNull(wechatLawView.getCompanyType(), "");
        if ("".equals(companyType)) {
            return AjaxResult.cloud_602("类型不能为空");
        }
        WebLawFlow webLawFlow = new  WebLawFlow();
        webLawFlow.setCompanyType(companyType);
        List<WebLawFlow> flowList = webLawFlowService.selectWebLawFlowList(webLawFlow);
        flowList.forEach(kv->{
               Long quantity = kv.getQuantity() + 1;
               kv.setQuantity(quantity);
               webLawFlowService.updateWebLawFlow(kv);
        });
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        long config_id = finalWebLawConfig.getId();
        WebLawCompany webLawCompany = new WebLawCompany();
        webLawCompany.setConfigId(config_id);
        webLawCompany.setCompanyType(companyType);
        List<WebLawCompany> configList = webLawCompanyService.selectWebLawCompanyList(webLawCompany);
        configList.forEach(kv->{
            kv.setSearchValue("A"+kv.getId());
        });
        return AjaxResult.success(configList);
    }



    /**
     * 公法小程序端获取机构列表详情
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getCompanyDetailList")
    public AjaxResult getCompanyDetailList(@RequestBody WechatLawView wechatLawView) {
        CompanyDetailView companyDetailView = new CompanyDetailView();
        Long companyId = wechatLawView.getCompanyId();
        WebLawCompany webLawCompany = webLawCompanyService.selectWebLawCompanyById(companyId);
        Map<String,String> natureHt= new HashMap<String,String>();
        List<SysDictData> selectDictDataByType=dictTypeService.selectDictDataByType(ComUtil.CONFIG_NATURE);
        selectDictDataByType.forEach(plc->{
            natureHt.put(plc.getDictValue(),plc.getDictLabel());
        });
        webLawCompany.setCompanyNature(natureHt.get(webLawCompany.getCompanyNature()));
        companyDetailView.setWebLawCompany(webLawCompany);
        Map<String,String> scopeHt= new HashMap<String,String>();
        String companyType = webLawCompany.getCompanyType();
        LawCaseType lawCaseType = new LawCaseType();
        lawCaseType.getParams().put("number", companyType);
        List<LawCaseType> lawCaseTypeList = lawCaseTypeService.selectLawCaseTypeList(lawCaseType);
        lawCaseTypeList.forEach(kv->{
            scopeHt.put(kv.getTypeNumber(),kv.getTypeName());
        });
        WebLawPersonnel webLawPersonnel = new WebLawPersonnel();
        webLawPersonnel.setCompanyId(companyId);
        webLawPersonnel.setState("true");
        List<WebLawPersonnel> PersonnelList = webLawPersonnelService.selectWebLawPersonnelList(webLawPersonnel);
        PersonnelList.forEach(kv->{
            List<String> scopeList = new ArrayList<>();
            String goodScope = StringUtils.isHcNull(kv.getGoodScope(),"");
            if(!"".equals(goodScope)){
                String[] scopeArr = goodScope.split(",");
                for (int i = 0; i < scopeArr.length; i++) {
                    scopeList.add(scopeHt.get(scopeArr[i]));
                }
            }
            if (scopeList.size()>0){
                kv.setGoodScope(StringUtils.join(scopeList, ";"));
            }
        });
        companyDetailView.setPersonnelList(PersonnelList);
        return AjaxResult.success(companyDetailView);
    }


    /**
     * 公法小程序端获取人员详情
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getPersonnelDetailList")
    public AjaxResult getPersonnelDetailList(@RequestBody WechatLawView wechatLawView) {
        Long personnelId = wechatLawView.getPersonnelId();
        Map<String,String> scopeHt= new HashMap<String,String>();
        LawCaseType lawCaseType = new LawCaseType();
        List<LawCaseType> lawCaseTypeList = lawCaseTypeService.selectLawCaseTypeList(lawCaseType);
        lawCaseTypeList.forEach(kv->{
            scopeHt.put(kv.getTypeNumber(),kv.getTypeName());
        });
        WebLawPersonnel webLawPersonnel = webLawPersonnelService.selectWebLawPersonnelById(personnelId);
        List<String> scopeList = new ArrayList<>();
        String goodScope = StringUtils.isHcNull(webLawPersonnel.getGoodScope(),"");
        if(!"".equals(goodScope)){
            String[] scopeArr = goodScope.split(",");
            for (int i = 0; i < scopeArr.length; i++) {
                scopeList.add(scopeHt.get(scopeArr[i]));
            }
        }
        if (scopeList.size()>0){
            webLawPersonnel.setGoodScope(StringUtils.join(scopeList, ";"));
        }
        return AjaxResult.success(webLawPersonnel);
    }


    /**
     * 公法小程序端问题类型
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getConsulling")
    public AjaxResult getConsulling(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        String companyType = StringUtils.isHcNull(wechatLawView.getCompanyType(), "");
        if ("".equals(companyType)) {
            return AjaxResult.cloud_602("类型不能为空");
        }
        LawCaseType lawCaseType = new LawCaseType();
        lawCaseType.getParams().put("number", companyType);
        List<LawCaseType> lawCaseTypeList = lawCaseTypeService.selectLawCaseTypeList(lawCaseType);
        List<MapStringView> htList = new ArrayList<>();
        lawCaseTypeList.forEach(kv->{
            htList.add(new MapStringView(kv.getTypeName(),kv.getTypeNumber()));
        });
        return AjaxResult.success(htList);
    }


    /**
     * 公法小程序端人员注册
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/checkUser")
    public AjaxResult checkUser(@RequestBody WechatLawView wechatLawView)
    {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(),"");
        if("".equals(appid)){
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        //1.通过微信接口换取openid
        String rspStr = HttpUtils.sendGet(ComUtil.WX_API_BASE+ComUtil.WX_GETUSER, "appid="+finalWebLawConfig.getAppid()+"&secret="+finalWebLawConfig.getAppsecret()+"&js_code="+wechatLawView.getJs_code()+"&grant_type=authorization_code", Constants.UTF8);
        JSONObject reuslt = JSON.parseObject(rspStr);
        String session_key = String.valueOf(reuslt.get("session_key"));
        String openid = String.valueOf(reuslt.get("openid"));
        if("".equals(StringUtils.isHcNull(openid,"")) || "null".equals(StringUtils.isHcNull(openid,""))){
            return AjaxResult.cloud_602("openid获取失败");
        }
        String decrypt= WxDecodeUtils.wxDecrypt(wechatLawView.getEncrypted(),session_key,wechatLawView.getIv());
        LawWechatUser wechatUser=JSON.parseObject(decrypt,LawWechatUser.class);
        LawWechatUser lawWechatUser = new LawWechatUser(openid,finalWebLawConfig.getId(),StringUtils.isHcNull(wechatLawView.getLocation().getLongitude(),""),StringUtils.isHcNull(wechatLawView.getLocation().getLatitude(),""));
        if (reuslt.containsKey("unionid")){
            lawWechatUser.setUnionid(String.valueOf(reuslt.get("unionid")));
        }
        if (StringUtils.isNull(wechatUser)){
            lawWechatUser.setNickname("微信用户");
        }else{
            String[] nullPropertyNames = BeanUtils.getNullPropertyNames(wechatUser);
            BeanUtils.copyProperties(wechatUser,lawWechatUser,nullPropertyNames);
        }
        LawWechatUser wechatLawUserData = lawWechatUserService.selectLawWechatUserById(openid);
        if(StringUtils.isNull(wechatLawUserData)){//库里无数据 进行添加
            lawWechatUserService.insertLawWechatUser(lawWechatUser);
        }else{
            if("微信用户".equals(lawWechatUser.getNickname())){
                lawWechatUser.setNickname(wechatLawUserData.getNickname());
            }
            lawWechatUserService.updateLawWechatUser(lawWechatUser);
        }
        OpenidLawView openidLawView = new OpenidLawView();
        openidLawView.setOpenId(openid);
        openidLawView.setWechatName(lawWechatUser.getNickname());
        openidLawView.setWechatImage(lawWechatUser.getAvatarurl());
        redisCache.setCacheObject(ComUtil.getWechatCacheKey(openid),openidLawView);
        return AjaxResult.success(openidLawView);
    }

    /**
     * 公法小程序端咨询保存
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setConsulling")
    public AjaxResult setConsulling(@RequestBody WebLawConsulling webLawConsulling) {
        boolean flag = holidayUtil.getIsHoliday(HolidayUtil.START_LAW_DATE+":00",HolidayUtil.END_LAW_DATE+":00");
        if (!flag){
            String msg = "请在["+HolidayUtil.START_LAW_DATE+"~"+HolidayUtil.END_LAW_DATE+"]工作时间内提交!当前时间："+DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,DateUtils.getNowDate());
            holidayUtil.setTxt(msg);
            return AjaxResult.cloud_602("请在["+HolidayUtil.START_LAW_DATE+"~"+HolidayUtil.END_LAW_DATE+"]工作时间内提交!");
        }
        Map<String,String> scopeHt= new HashMap<String,String>();
        LawCaseType lawCaseType = new LawCaseType();
        List<LawCaseType> lawCaseTypeList = lawCaseTypeService.selectLawCaseTypeList(lawCaseType);
        lawCaseTypeList.forEach(kv->{
            scopeHt.put(kv.getTypeNumber(),kv.getTypeName());
        });
        BigDecimal totalAmount = new BigDecimal(0);
        List<String> messagelist = new ArrayList<String>();
        List<String> phonelist = new ArrayList<String>();
        WebLawPersonnel webLawPersonnel = webLawPersonnelService.selectWebLawPersonnelById(webLawConsulling.getPersonnelId());
        WebLawCompany webLawCompany = webLawCompanyService.selectWebLawCompanyById(webLawConsulling.getCompanyId());
        webLawConsulling.setState("0");
        webLawConsulling.setConfigId(webLawCompany.getConfigId());
        webLawConsulling.setDeptId(webLawCompany.getDeptId());
        webLawConsulling.setApplyTime(DateUtils.getNowDate());
        webLawConsulling.setEvaluate(totalAmount);
        webLawConsulling.setTypeName(scopeHt.get(webLawConsulling.getTypeNumber()));
        if (StringUtils.isNotNull(webLawPersonnel)){
            String phone = StringUtils.isHcNull(webLawPersonnel.getPhone(),"");
            if (PhoneFormatCheckUtils.isPhoneLegal(phone.trim()) && !"".equals(phone)){
                phonelist.add("+86"+phone);
            }
            webLawConsulling.setUserId(webLawPersonnel.getUserId());
            messagelist.add(String.valueOf(webLawPersonnel.getUserId()));
        }else{
            WebLawPersonnel lawPersonnel = new WebLawPersonnel();
            lawPersonnel.setCompanyId(webLawConsulling.getCompanyId());
//            lawPersonnel.setSms("true");
            List<WebLawPersonnel> webLawPersonnelList = webLawPersonnelService.selectWebLawPersonnelList(lawPersonnel);
            webLawPersonnelList.forEach(kv->{
                if ("true".equals(kv.getSms())){
                    String phone = StringUtils.isHcNull(kv.getPhone(),"");
                    if (PhoneFormatCheckUtils.isPhoneLegal(phone.trim()) && !"".equals(phone)){
                        phonelist.add("+86"+phone);
                    }
                }
                messagelist.add(String.valueOf(kv.getUserId()));
            });
            webLawConsulling.setUserId(-1L);
        }
        String msg = "您有一条["+webLawConsulling.getName()+"]的咨询信息!";
        int rows = webLawConsullingService.insertWebLawConsulling(webLawConsulling);
        if (rows > 0){
            webLawConfigService.setModPeople(webLawCompany.getConfigId(),webLawConsulling.getTypeNumber());//修改咨询人数
            WebLawConsullingDetail webLawConsullingDetail = new WebLawConsullingDetail();
            webLawConsullingDetail.setConsullingId(webLawConsulling.getId());
            webLawConsullingDetail.setType("0");
            webLawConsullingDetail.setTitle(webLawConsulling.getTitle());
            webLawConsullingDetail.setContent(webLawConsulling.getContent());
            webLawConsullingDetail.setOpenid(webLawConsulling.getOpenid());
            webLawConsullingDetail.setUserName(webLawConsulling.getName());
            webLawConsullingDetail.setOperationTime(DateUtils.getNowDate());
            webLawConsullingDetailService.insertWebLawConsullingDetail(webLawConsullingDetail);
            TxSmsUtil.smsData(ComUtil.LAW_SECRETID,ComUtil.LAW_SECRETKEY,ComUtil.LAW_SMSSDKAPPID,ComUtil.LAW_SIGN,phonelist,"11",webLawConsulling.getName(),"","");
            WebLawSocketServer.sendLawMsg("zx",msg,messagelist,webLawConsulling.getId());
        }
        return toAjax(rows);
    }

    /**
     * 公法小程序端咨询列表
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getConsullingList")
    public AjaxResult getConsullingList(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        String pageSize = StringUtils.isHcNull(wechatLawView.getPageSize(),"");
        if("".equals(pageSize)){
            pageSize="10";
        }
        ConsullingView consullingView = new ConsullingView();
        WebLawConfig finalWebLawConfig = list.get(0);
        Long config_id = finalWebLawConfig.getId();
        WebLawConsulling webLawConsulling = new WebLawConsulling();
        webLawConsulling.setConfigId(config_id);
        webLawConsulling.getParams().put("number", "0");
        List<WebLawConsulling> ConsullingList = webLawConsullingService.selectWebLawConsullingWechatList(webLawConsulling);
        List<WebLawConsulling> listData = new ArrayList<>();
        if (!StringUtils.isEmpty(ConsullingList)){
            int total=ConsullingList.size();
            if(ConsullingList.size()>Integer.valueOf(pageSize)){
                for(int i=0;i<Integer.valueOf(pageSize);i++){
                    if (ConsullingList.size()>i) {
                        listData.add(ConsullingList.get(i));
                    }
                }
            }else{
                listData=ConsullingList;
            }
            listData.forEach(kv->{
                String anonymous = kv.getAnonymous();
                if ("true".equals(anonymous)){
                     kv.setName("匿 名");
                }
                String typeNumber = kv.getTypeNumber();
                typeNumber = typeNumber.substring(0,2);
                kv.setTypeName(typeHt.get(typeNumber));
            });
            consullingView.setTotal(total);
            consullingView.setListData(listData);
        }
        return AjaxResult.success(consullingView);
    }

    /**
     * 公法小程序端咨询列表
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getConsullingDetail")
    public AjaxResult getConsullingDetail(@RequestBody WechatLawView wechatLawView) {
        ConsullingDetailView consullingDetailView = new ConsullingDetailView();
        Long ConsullingId = wechatLawView.getConsullingId();
        WebLawConsulling webLawConsulling = new WebLawConsulling();
        webLawConsulling.setId(ConsullingId);
        List<WebLawConsulling> ConsullingList = webLawConsullingService.selectWebLawConsullingWechatList(webLawConsulling);
        WebLawConsulling findWebLawConsulling = ConsullingList.get(0);
        String anonymous = findWebLawConsulling.getAnonymous();
        if ("true".equals(anonymous)){
            findWebLawConsulling.setName("匿 名");
        }
        String typeNumber = findWebLawConsulling.getTypeNumber();
        typeNumber = typeNumber.substring(0,2);
        findWebLawConsulling.setTypeNumber(typeHt.get(typeNumber));
        consullingDetailView.setWebLawConsulling(findWebLawConsulling);
        WebLawConsullingDetail webLawConsullingDetail = new WebLawConsullingDetail();
        webLawConsullingDetail.setConsullingId(ConsullingId);
        List<WebLawConsullingDetail> list = webLawConsullingDetailService.selectWebLawConsullingDetailList(webLawConsullingDetail);
        list.forEach(kv->{
            String openid = StringUtils.isHcNull(kv.getOpenid(), "");
            if (!"".equals(openid)){
                LawWechatUser lawWechatUser = lawWechatUserService.selectLawWechatUserById(openid);
                kv.setOpenid(lawWechatUser.getAvatarurl());
            }
        });
        list.remove(0);
        consullingDetailView.setList(list);
        return AjaxResult.success(consullingDetailView);
    }


    /**
     * 公法小程序端咨询列表-我的咨询
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getMyConsullingList")
    public AjaxResult getMyConsullingList(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        String openid = StringUtils.isHcNull(wechatLawView.getOpenid(), "");
        if ("".equals(openid)) {
            return AjaxResult.cloud_602("openid不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long config_id = finalWebLawConfig.getId();
        WebLawConsulling webLawConsulling = new WebLawConsulling();
        webLawConsulling.setConfigId(config_id);
        webLawConsulling.setOpenid(openid);
        List<WebLawConsulling> ConsullingList = webLawConsullingService.selectWebLawConsullingWechatList(webLawConsulling);
        ConsullingList.forEach(kv->{
            String typeNumber = kv.getTypeNumber();
            typeNumber = typeNumber.substring(0,2);
            kv.setTypeName(typeHt.get(typeNumber));
        });
        return AjaxResult.success(ConsullingList);
    }

    /**
     * 公法小程序端咨询列表-我的咨询
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getMyConsullingDetail")
    public AjaxResult getMyConsullingDetail(@RequestBody WechatLawView wechatLawView) {
        ConsullingDetailView consullingDetailView = new ConsullingDetailView();
        Long ConsullingId = wechatLawView.getConsullingId();
        WebLawConsulling webLawConsulling = new WebLawConsulling();
        webLawConsulling.setId(ConsullingId);
        List<WebLawConsulling> ConsullingList = webLawConsullingService.selectWebLawConsullingWechatList(webLawConsulling);
        WebLawConsulling findWebLawConsulling = ConsullingList.get(0);
        String typeNumber = findWebLawConsulling.getTypeNumber();
        typeNumber = typeNumber.substring(0,2);
        findWebLawConsulling.setTypeNumber(typeHt.get(typeNumber));
        consullingDetailView.setWebLawConsulling(findWebLawConsulling);
        WebLawConsullingDetail webLawConsullingDetail = new WebLawConsullingDetail();
        webLawConsullingDetail.setConsullingId(ConsullingId);
        List<WebLawConsullingDetail> list = webLawConsullingDetailService.selectWebLawConsullingDetailList(webLawConsullingDetail);
        list.forEach(kv->{
            String openid = StringUtils.isHcNull(kv.getOpenid(), "");
            if (!"".equals(openid)){
                LawWechatUser lawWechatUser = lawWechatUserService.selectLawWechatUserById(openid);
                kv.setOpenid(lawWechatUser.getAvatarurl());
            }
        });
        list.remove(0);
        consullingDetailView.setList(list);
        return AjaxResult.success(consullingDetailView);
    }

    /**
     * 公法小程序端咨询列表-我的咨询
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setMyConsulling")
    public AjaxResult setMyConsulling(@RequestBody WechatLawView wechatLawView) {
        String openid = StringUtils.isHcNull(wechatLawView.getOpenid(), "");
        if ("".equals(openid)) {
            return AjaxResult.cloud_602("openid不能为空");
        }
        WebLawConsulling webLawConsulling = webLawConsullingService.selectWebLawConsullingById(wechatLawView.getConsullingId());
        webLawConsulling.setState("2");
        webLawConsullingService.updateWebLawConsulling(webLawConsulling);
        WebLawConsullingDetail webLawConsullingDetail = new WebLawConsullingDetail();
        webLawConsullingDetail.setConsullingId(wechatLawView.getConsullingId());
        webLawConsullingDetail.setContent(wechatLawView.getContent());
        webLawConsullingDetail.setType("0");
        webLawConsullingDetail.setUserName(webLawConsulling.getName());
        webLawConsullingDetail.setOperationTime(DateUtils.getNowDate());
        webLawConsullingDetail.setOpenid(wechatLawView.getOpenid());
        return toAjax(webLawConsullingDetailService.insertWebLawConsullingDetail(webLawConsullingDetail));
    }


    /**
     * 公法小程序端咨询列表-我的咨询
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setEvaluate")
    public AjaxResult setEvaluate(@RequestBody WechatLawView wechatLawView) {
        String openid = StringUtils.isHcNull(wechatLawView.getOpenid(), "");
        if ("".equals(openid)) {
            return AjaxResult.cloud_602("openid不能为空");
        }
        WebLawConsulling webLawConsulling = webLawConsullingService.selectWebLawConsullingById(wechatLawView.getConsullingId());
        webLawConsulling.setState("4");
        webLawConsulling.setEvaluate(wechatLawView.getEvaluate());
        webLawConsulling.setEvaluateTime(DateUtils.getNowDate());
        return toAjax(webLawConsullingService.updateWebLawConsulling(webLawConsulling));
    }


    /**
     * 公法小程序端咨询列表-我的咨询
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getMechanism")
    public AjaxResult getMechanism(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        WebLawMechanism webLawMechanism = webLawMechanismService.selectWebLawMechanismById(configId);
        WebLawMechanismDetail webLawMechanismDetail = new WebLawMechanismDetail();
        webLawMechanismDetail.setConfigId(configId);
        List<WebLawMechanismDetail> detailList = webLawMechanismDetailService.selectWebLawMechanismDetailList(webLawMechanismDetail);
        if (!StringUtils.isEmpty(detailList)){
            webLawMechanism.setDetailList(detailList);
        }
        return AjaxResult.success(webLawMechanism);
    }

    /**
     * 公法小程序端咨询列表-法制宣传
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getPropagandaList")
    public AjaxResult getPropagandaList(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        String pageSize = StringUtils.isHcNull(wechatLawView.getPageSize(),"");
        if("".equals(pageSize)){
            pageSize="10";
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        PropagandaView propagandaView = new PropagandaView();
        WebLawPropaganda webLawPropaganda = new WebLawPropaganda();
        webLawPropaganda.setState("true");
        webLawPropaganda.setPropagandaType(wechatLawView.getPropagandaType());
        List<WebLawPropaganda> PropagandaList = webLawPropagandaService.selectWebLawPropagandaList(webLawPropaganda);
        List<WebLawPropaganda> listData = new ArrayList<>();
        if (!StringUtils.isEmpty(PropagandaList)){
            int total=PropagandaList.size();
            if(PropagandaList.size()>Integer.valueOf(pageSize)){
                for(int i=0;i<Integer.valueOf(pageSize);i++){
                    if (PropagandaList.size()>i) {
                        listData.add(PropagandaList.get(i));
                    }
                }
            }else{
                listData=PropagandaList;
            }
            listData.forEach(kv->{
                kv.setContent(null);
            });
            propagandaView.setTotal(total);
            propagandaView.setListData(listData);
        }
        webLawConfigService.setModPeople(configId,"99");//修改咨询人数
        webLawConfigService.setModPeople(configId,"96");//修改法规动态次数
        return AjaxResult.success(propagandaView);
    }

    /**
     * 公法小程序端咨询列表-法制宣传详情
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getPropaganda")
    public AjaxResult getPropaganda(@RequestBody WechatLawView wechatLawView) {
        Long propagandaId = wechatLawView.getPropagandaId();
        WebLawPropaganda webLawPropaganda =  webLawPropagandaService.selectWebLawPropagandaById(propagandaId);
        return AjaxResult.success(webLawPropaganda);
    }


    /**
     * 公法小程序端咨询列表-咨询回复数量
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getQuantity")
    public AjaxResult getQuantity(@RequestBody WechatLawView wechatLawView) {
        int number = 0;
        String openid = StringUtils.isHcNull(wechatLawView.getOpenid(), "");
        if ("".equals(openid)) {
            return AjaxResult.cloud_602("openid不能为空");
        }
        WebLawConsulling webLawConsulling = new WebLawConsulling();
        webLawConsulling.setOpenid(openid);
        webLawConsulling.setState("1");
        List<WebLawConsulling> ConsullingList = webLawConsullingService.selectWebLawConsullingList(webLawConsulling);
        number = ConsullingList.size();
        return AjaxResult.success(number);
    }


    /**
     * 公法小程序端咨询列表-咨询回复列表
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getRemind")
    public AjaxResult getRemind(@RequestBody WechatLawView wechatLawView) {
        String openid = StringUtils.isHcNull(wechatLawView.getOpenid(), "");
        if ("".equals(openid)) {
            return AjaxResult.cloud_602("openid不能为空");
        }
        WebLawConsulling webLawConsulling = new WebLawConsulling();
        webLawConsulling.setOpenid(openid);
        webLawConsulling.setState("1");
        List<WebLawConsulling> ConsullingList = webLawConsullingService.selectWebLawConsullingList(webLawConsulling);
        return AjaxResult.success(ConsullingList);
    }


    /**
     * 公法小程序端预约保存
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setReserve")
    public AjaxResult setReserve(@RequestBody WebLawReserve webLawReserve) {
        boolean flag = holidayUtil.getIsHoliday(HolidayUtil.START_LAW_DATE+":00",HolidayUtil.END_LAW_DATE+":00");
        if (!flag){
            String msg = "请在["+HolidayUtil.START_LAW_DATE+"~"+HolidayUtil.END_LAW_DATE+"]工作时间内提交!当前时间："+DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,DateUtils.getNowDate());
            holidayUtil.setTxt(msg);
            return AjaxResult.cloud_602("请在["+HolidayUtil.START_LAW_DATE+"~"+HolidayUtil.END_LAW_DATE+"]工作时间内提交!");
        }
        List<String> phonelist = new ArrayList<String>();
        List<String> messagelist = new ArrayList<String>();
        Map<String,String> scopeHt= new HashMap<String,String>();
        LawCaseType lawCaseType = new LawCaseType();
        List<LawCaseType> lawCaseTypeList = lawCaseTypeService.selectLawCaseTypeList(lawCaseType);
        lawCaseTypeList.forEach(kv->{
            scopeHt.put(kv.getTypeNumber(),kv.getTypeName());
        });
        BigDecimal totalAmount = new BigDecimal(0);
        WebLawPersonnel webLawPersonnel = webLawPersonnelService.selectWebLawPersonnelById(webLawReserve.getPersonnelId());
        WebLawCompany webLawCompany = webLawCompanyService.selectWebLawCompanyById(webLawReserve.getCompanyId());
        webLawReserve.setState("0");
        webLawReserve.setConfigId(webLawCompany.getConfigId());
        webLawReserve.setDeptId(webLawCompany.getDeptId());
        webLawReserve.setApplyTime(DateUtils.getNowDate());
        webLawReserve.setTypeName(scopeHt.get(webLawReserve.getTypeNumber()));
        String msg = "您有一条["+webLawReserve.getName()+"]的预约信息!";
        if (StringUtils.isNotNull(webLawPersonnel)){
            String phone = StringUtils.isHcNull(webLawPersonnel.getPhone(),"");
            if (PhoneFormatCheckUtils.isPhoneLegal(phone.trim()) && !"".equals(phone)){
                phonelist.add("+86"+phone);
            }
            webLawReserve.setUserId(webLawPersonnel.getUserId());
            messagelist.add(String.valueOf(webLawPersonnel.getUserId()));
        }else{
            WebLawPersonnel lawPersonnel = new WebLawPersonnel();
            lawPersonnel.setCompanyId(webLawReserve.getCompanyId());
            List<WebLawPersonnel> webLawPersonnelList = webLawPersonnelService.selectWebLawPersonnelList(lawPersonnel);
            webLawPersonnelList.forEach(kv->{
                if ("true".equals(kv.getSms())){
                    String phone = StringUtils.isHcNull(kv.getPhone(),"");
                    if (PhoneFormatCheckUtils.isPhoneLegal(phone.trim()) && !"".equals(phone)){
                        phonelist.add("+86"+phone);
                    }
                }
                messagelist.add(String.valueOf(kv.getUserId()));
            });
            webLawReserve.setUserId(-1L);
        }
        int rows = webLawReserveService.insertWebLawReserve(webLawReserve);
        if (rows > 0){
            webLawConfigService.setModPeople(webLawCompany.getConfigId(),webLawReserve.getTypeNumber());//修改咨询人数
            TxSmsUtil.smsData(ComUtil.LAW_SECRETID,ComUtil.LAW_SECRETKEY,ComUtil.LAW_SMSSDKAPPID,ComUtil.LAW_SIGN,phonelist,"12",webLawReserve.getName(),"","");
            WebLawSocketServer.sendLawMsg("yy",msg,messagelist,webLawReserve.getId());
        }
        return toAjax(rows);
    }


    /**
     * 公法小程序端咨询列表-我的预约
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getMyReserveList")
    public AjaxResult getMyReserveList(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        String openid = StringUtils.isHcNull(wechatLawView.getOpenid(), "");
        if ("".equals(openid)) {
            return AjaxResult.cloud_602("openid不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long config_id = finalWebLawConfig.getId();
        WebLawReserve webLawReserve = new WebLawReserve();
        webLawReserve.setConfigId(config_id);
        webLawReserve.setOpenid(openid);
        List<WebLawReserve>  ReserveList = webLawReserveService.selectWebLawReserveList(webLawReserve);
        return AjaxResult.success(ReserveList);
    }

    /**
     * 公法小程序端咨询列表-我的预约详情
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getMyReserve")
    public AjaxResult getMyReserve(@RequestBody WechatLawView wechatLawView) {
        Long reserveId = wechatLawView.getReserveId();
        WebLawReserve webLawReserve = webLawReserveService.selectWebLawReserveById(reserveId);
        return AjaxResult.success(webLawReserve);
    }

    /**
     * 公法小程序端咨询列表-取消预约
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setCancelReserve")
    public AjaxResult setCancelReserve(@RequestBody WechatLawView wechatLawView) {
        Long reserveId = wechatLawView.getReserveId();
        WebLawReserve webLawReserve = webLawReserveService.selectWebLawReserveById(reserveId);
        webLawReserve.setState("3");
        return toAjax(webLawReserveService.updateWebLawReserve(webLawReserve));
    }


    /**
     * 公法小程序端咨询列表-修改12348热线电话次数
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setHotlineNumber")
    public AjaxResult setHotlineNumber(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        webLawConfigService.setModPeople(configId,"98");//12348热线电话次数
        return AjaxResult.success();
    }

    /**
     * 公法小程序端咨询列表-修改公证次数
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setNotarizationNumber")
    public AjaxResult setNotarizationNumber(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        webLawConfigService.setModPeople(configId,"0201");//修改公证次数
        return AjaxResult.success();
    }


    /**
     * 公法小程序端咨询列表-修改法制宣传次数
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setPropagandaNumber")
    public AjaxResult setPropagandaNumber(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        webLawConfigService.setModPeople(configId,"99");//修改法制宣传
        return AjaxResult.success();
    }


    /**
     * 公法小程序端评价列表-机构列表
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getEvaluateList")
    public AjaxResult getEvaluateList(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        WebLawCompany webLawCompany = new WebLawCompany();
        webLawCompany.setConfigId(configId);
        List<WebLawCompany> webLawCompanyList = webLawCompanyService.selectWebLawCompanyList(webLawCompany);
        webLawConfigService.setModPeople(configId,"95");//修改满意度评价次数
        return AjaxResult.success(webLawCompanyList);
    }

    /**
     * 公法小程序端评价列表-评价
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/saveEvaluate")
    public AjaxResult saveEvaluate(@RequestBody WebLawEvaluate webLawEvaluate) {
        String appid = StringUtils.isHcNull(webLawEvaluate.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        webLawEvaluate.setConfigId(configId);
        webLawEvaluate.setEvaluateTime(DateUtils.getNowDate());
        return toAjax(webLawEvaluateService.insertWebLawEvaluate(webLawEvaluate));
    }


    /**
     * 公法小程序端目录清单列表
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getCatalogueList")
    public AjaxResult getCatalogueList(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        Map<String,String> matterMap = new HashMap<String,String>();
        List<SysDictData> selectMatterByType=dictTypeService.selectDictDataByType(ComUtil.CONFIG_LAW_MATTER_TYPE);
        selectMatterByType.forEach(matterKv ->{
            matterMap.put(matterKv.getDictValue(),matterKv.getDictLabel());
        });
        Map<String,String> executeMap = new HashMap<String,String>();
        List<SysDictData> selectExecuteByType=dictTypeService.selectDictDataByType(ComUtil.CONFIG_LAW_EXECUTE_TYPE);
        selectExecuteByType.forEach(executeKv ->{
            executeMap.put(executeKv.getDictValue(),executeKv.getDictLabel());
        });
        List<WebLawCatalogue> list = webLawCatalogueService.selectWebLawCatalogueList(null);
        Map<String,List<WebLawCatalogue>> catalogue = new HashMap<>();
        list.forEach(kv->{
            kv.setEventType(matterMap.get(kv.getEventType()));
            kv.setHandlingType(executeMap.get(kv.getHandlingType()));
            String  nameType = kv.getEventType();
            List<WebLawCatalogue> catalogueList = new ArrayList<>();
            if(!StringUtils.isNull(catalogue.get(nameType))) {
                catalogueList = catalogue.get(nameType);
            }
            catalogueList.add(kv);
            catalogue.put(nameType,catalogueList);
        });
        List<WebLawCatalogueView> webLawCatalogueViewList = new ArrayList<>();
        catalogue.forEach((k,v)->{
            WebLawCatalogueView webLawCatalogueView = new WebLawCatalogueView();
            webLawCatalogueView.setId(PingYinUtil.getFirstSpell(k));
            webLawCatalogueView.setName(k);
            webLawCatalogueView.setArr(v);
            webLawCatalogueViewList.add(webLawCatalogueView);
        });
        return AjaxResult.success(webLawCatalogueViewList);
    }


    /**
     * 公法小程序端实施清单列表
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getImplementList")
    public AjaxResult getImplementList(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawImplement webLawImplement = new WebLawImplement();
        webLawImplement.setState("true");
        List<WebLawImplement> list = webLawImplementService.selectWebLawImplementList(webLawImplement);
        return AjaxResult.success(list);
    }

    /**
     * 公法小程序端实施清单列表-详情
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getImplementDetail")
    public AjaxResult getImplementDetail(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawImplementDetail webLawImplementDetail = new WebLawImplementDetail();
        webLawImplementDetail.setImplementId(wechatLawView.getImplementId());
        List<WebLawImplementDetail> webLawImplementDetailList = webLawImplementDetailService.selectWebLawImplementDetailList(webLawImplementDetail);
        List<MapFileView> imgPath = new ArrayList<>();
        List<MapFileView> acceptance = new ArrayList<>();
        List<MapFileView> empty = new ArrayList<>();
        List<MapFileView> sample = new ArrayList<>();
        if (StringUtils.isNotEmpty(webLawImplementDetailList)){
            webLawImplementDetailList.forEach(kv->{
                MapFileView mapFileView = new  MapFileView();
                mapFileView.setName(kv.getName());
                mapFileView.setPath(kv.getPath());
                String  type = kv.getType();
                if ("process".equals(type)){
                    imgPath.add(mapFileView);
                }else if ("acceptance".equals(type)){
                    acceptance.add(mapFileView);
                }else if ("empty".equals(type)){
                    empty.add(mapFileView);
                }else if ("sample".equals(type)){
                    sample.add(mapFileView);
                }
            });
        }
        WebLawImplement webLawImplement = webLawImplementService.selectWebLawImplementById(wechatLawView.getImplementId());
        webLawImplement.setImgPath(imgPath);
        webLawImplement.setAcceptance(acceptance);
        webLawImplement.setEmpty(empty);
        webLawImplement.setSample(sample);
        return AjaxResult.success(webLawImplement);
    }
    /**
     * 公法小程序端政务咨询保存
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setConsultation")
    public AjaxResult setConsultation(@RequestBody WebLawConsultation webLawConsultation) {
        boolean flag = holidayUtil.getIsHoliday(HolidayUtil.START_LAW_DATE+":00",HolidayUtil.END_LAW_DATE+":00");
        if (!flag){
            String msg = "请在["+HolidayUtil.START_LAW_DATE+"~"+HolidayUtil.END_LAW_DATE+"]工作时间内提交!当前时间："+DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,DateUtils.getNowDate());
            holidayUtil.setTxt(msg);
            return AjaxResult.cloud_602("请在["+HolidayUtil.START_LAW_DATE+"~"+HolidayUtil.END_LAW_DATE+"]工作时间内提交!");
        }
        String appid = StringUtils.isHcNull(webLawConsultation.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        String openid = StringUtils.isHcNull(webLawConsultation.getOpenid(), "");
        if ("".equals(openid)) {
            return AjaxResult.cloud_602("openid不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        webLawConsultation.setConfigId(configId);
        webLawConsultation.setState("0");
        webLawConsultation.setApplyTime(DateUtils.getNowDate());
        int rows = webLawConsultationService.insertWebLawConsultation(webLawConsultation);
        if (rows > 0){
            List<String> phonelist = new ArrayList<String>();
            String[]  phArr = ComUtil.LAW_ZW_PHONE_USER.split(",");
            for (int i = 0; i < phArr.length; i++) {
                phonelist.add("+86"+phArr[i]);
            }
            TxSmsUtil.smsData(ComUtil.LAW_SECRETID,ComUtil.LAW_SECRETKEY,ComUtil.LAW_SMSSDKAPPID,ComUtil.LAW_SIGN,phonelist,"13",webLawConsultation.getName(),"","");
            List<String> messagelist = new ArrayList<String>();
            String msg = "您有一条["+webLawConsultation.getName()+"]的政务咨询信息!";
            messagelist.add(ComUtil.LAW_ZW_ID_USER);
            WebLawSocketServer.sendLawMsg("zwzx",msg,messagelist,webLawConsultation.getId());
        }
        return toAjax(rows);
    }

    /**
     * 公法小程序端政务咨询列表
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/getConsultationList")
    public AjaxResult getConsultationList(@RequestBody WebLawConsultation webLawConsultation) {
        String openid = StringUtils.isHcNull(webLawConsultation.getOpenid(), "");
        if ("".equals(openid)) {
            return AjaxResult.cloud_602("openid不能为空");
        }
        WebLawConsultation  webLawConsultation1 = new WebLawConsultation();
        webLawConsultation1.setOpenid(openid);
        List<WebLawConsultation> list = webLawConsultationService.selectWebLawConsultationList(webLawConsultation1);
        return AjaxResult.success(list);
    }


    /**
     * 公法小程序端咨询列表-修改政务服务次数
     * @author cyt
     * @date 2021-06-23
     */
    @PostMapping("/setGovernmentNumber")
    public AjaxResult setGovernmentNumber(@RequestBody WechatLawView wechatLawView) {
        String appid = StringUtils.isHcNull(wechatLawView.getAppid(), "");
        if ("".equals(appid)) {
            return AjaxResult.cloud_602("appId不能为空");
        }
        WebLawConfig webLawConfig = new WebLawConfig();
        webLawConfig.setAppid(appid);
        List<WebLawConfig> list = webLawConfigService.selectWebLawConfigList(webLawConfig);
        if (StringUtils.isEmpty(list) ){
            return AjaxResult.cloud_602("appId未配置!");
        }
        WebLawConfig finalWebLawConfig = list.get(0);
        Long configId = finalWebLawConfig.getId();
        webLawConfigService.setModPeople(configId,"97");//修改政务服务次数
        return AjaxResult.success();
    }
}
